The present invention relates generally to computer processing. More particularly, the present invention relates to evaluating data items where the evaluation is based on the combination of multiple factors.
In the course of processing data, computer systems often need to evaluate data items based on multiple factors. In the particular object-focused computer system described herein below, an object is received by the system and the processing of that object depends on the evaluation of data items called attributes. These so-called attributes correspond to variables in non-object-focused computer systems.
As an example of the processing of attributes in an object-focused system, consider a customer call center which receives customer telephone calls. An attribute that may be evaluated is call_priority, which will be assigned a value depending on various factors, such as previous calls from the customer, input already received from the customer identifying the reason for the call, the potential value of the call, etc. The factors are evaluated and the results of the evaluations are combined in some manner in order to determine the value to be assigned to the call_priority attribute. The manner in which the factors are evaluated, and the manner in which the results are combined, are defined by some business policy regarding the handling of calls. Once the business policy is articulated, it must be specified in a manner understandable to a computer system implementing the call center.
One technique for specifying the business policy is to encode the decision making process into a conventional procedural computer program which defines the steps to be taken in evaluating the attribute, and the order of those steps. Such a procedural specification defines how each factor is to be evaluated, and how the results of the factor evaluations are to be combined in order to assign a value to the attribute. Due to the nature of procedural programming languages, the resulting specification for implementing the business policy will generally be awkward, and difficult to maintain and modify. For example, it will be difficult to separate the portions of the specification defining how the factors are to be evaluated from the portion of the specification defining the algorithm for combining the results of the factor evaluations.
One technique which solves some of the problems of the above described procedural specification is the use of an expert system. Expert systems are rules-based systems which allow for the specification of a body of rules and an algorithm for applying those rules to some input. However, the use of an expert system generally only allows for a single algorithm describing how rules are to be applied and interpreted, and as such there is a degree of inflexibility in such a system. Also, the specification of the computation rules for a variety of attributes may require the definition of many rules, with the interaction of those rules being intricate and difficult to understand. Further, expert systems are generally slow and inefficient, and are generally unsuited for applications which do not require the full processing power of an expert system.
As such, there is a need for an improved technique for the specification of how attributes are to be processed based on a combination of multiple factors.
In accordance with the invention, data items are evaluated in accordance with associated computation rules and a combining policy. The computation rules specify the factors to be taken into account in the evaluation of the data item, and how the factors are to be evaluated. The combining policy specifies how the results of the evaluation of the factors are to be combined in order to assign a value to the data item.
The computation rules comprise a condition and a term. The evaluation of a computation rule consists of the evaluation of the condition, and if the condition is true, then contributing the term to a collection of values. The collection of values is then combined in accordance with the combining policy to produce a value which is assigned to the data item.
In accordance with one aspect of the invention, the combining policy is specified by a flexible combining policy language. The combining policy may also be specified using a combining policy function, which represents a predefined combining policy language program.
The use of computation rules and a combining policy in accordance with the invention provides for a powerful and flexible technique for evaluating data items based on the combination of factors. Further, a program specification in accordance with the invention is easy to maintain and modify because the specification of how factors are to be evaluated are specified by the computation rules, and the specification of how the factor evaluation results are to be combined are specified by the combining policy. This separation results in a specification which is easier to understand, maintain, and modify.
These and other advantages of the invention will be apparent to those of ordinary skill in the art by reference to the following detailed description and the accompanying drawings.